package com.itany.corejava.code09_集合.collections;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/**
 * @author 石小俊
 * @date 2023年05月08日 16:41
 */
public class Test01_常用方法 {

    public static void main(String[] args) {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(3);
        list.add(2);
        list.add(6);
        list.add(8);
        System.out.println(list);

        // addAll(Collection c, T... t):同时添加多个元素
        // 如果是数字型,按照数值大小
        Collections.addAll(list, 20, 11, 1, 12, 13, 1);
        System.out.println(list);

        // max(Collection):取最大值
        System.out.println(Collections.max(list));
        // 如果是字符串,是按照字典顺序进行排序
        List<String> names = new ArrayList<>();
        Collections.addAll(names, "admin", "jack", "alice", "tom");
        System.out.println(Collections.max(names));

        // min():最小值
        System.out.println(Collections.min(list));
        System.out.println(Collections.min(names));

        // sort(List list):排序
        Collections.sort(list);
        System.out.println(list);
        Collections.sort(names);
        System.out.println(names);

        // sort(List list,Comparator c):自定义排序
        Collections.sort(list, new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                // 实现一个降序排序
                if (o1 > o2) {
                    return -1;
                } else if (o1 < o2) {
                    return 1;
                }
                return 0;
            }
        });
        System.out.println(list);

        Collections.sort(names, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                // 根据字符串长度进行降序排序
                if (o1.length() > o2.length()) {
                    return -1;
                } else if (o1.length() < o2.length()) {
                    return 1;
                } else {
                    return 0;
                }
            }
        });
        System.out.println(names);

        // reverse():反转
        Collections.reverse(list);
        System.out.println(list);

        // replaceAll():替换所有指定元素
        Collections.replaceAll(list, 1, 10);
        System.out.println(list);

        Collections.swap(list, 2, 3);
        System.out.println(list);

        // fill:将集合中所有元素值都换成指定元素
        Collections.fill(list, 10);
        System.out.println(list);
    }

}
